package com.xxb.task.schedued;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author panghu
 * @version 1.0.0
 * @createTime 2023年04月06日 14:32:00
 * @Description
 */
@Component
@Slf4j
public class MyScheduTaskDemo {

    private static int i = 0;

    // fixedDelay：时间间隔的意思
    // fixedRate：时间间隔速率
    // initialDelay : 项目启动多长时间执行第一次定时任务，默认-1立即执行去
//    @Scheduled(fixedDelay = 3000L,initialDelay = 5000L)
//    public void executeTask() {
//        i++;
//        log.info("定时任务开始执行第 : " + i + "次");
//    }


    // 速率形式
//    @Scheduled(fixedRate = 3000L,initialDelay = 5000L)
//    public void executeTask() {
//        i++;
//        log.info("定时任务开始执行第 : " + i + "次");
//    }


//    // 速率形式  方法执行时间超过fixedRate中的，就会接着执行
//    @Scheduled(fixedRate = 3000L)
//    public void executeTask() throws InterruptedException {
//        log.info("定时任务开始执行.............start");
//        Thread.sleep(5000);
//        log.info("定时任务开始执行.............end");
//    }

//    // 方法执行时间超过fixedDelay中的，会等待fixedDelay时间再执行
//    @Scheduled(fixedDelay = 3000L)
//    public void executeTask() throws InterruptedException {
//        log.info("定时任务开始执行.............start");
//        Thread.sleep(5000);
//        log.info("定时任务开始执行.............end");
//    }

//    @Scheduled(cron = "*/3 * * * * ?")
//    public void executeTask1() throws InterruptedException {
//        Thread.sleep(10000L);
//        log.info("定时任务开始执行.............");
//    }

//    @Scheduled(cron = "*/5 * * * * ?")
//    public void executeTask2(){
//        log.info("2定时任务开始执行.............");
//    }
//
//    @Scheduled(cron = "*/2 * * * * ?")
//    public void executeTask3(){
//        log.info("3定时任务开始执行.............");
//    }


}
